using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("BnetWhisperMgr")]
	public class BnetWhisperMgr : MonoClass
	{
		public static int MAX_WHISPERS_PER_PLAYER => MonoClass.smethod_6<int>(TritonHs.MainAssemblyPath, "", "BnetWhisperMgr", "MAX_WHISPERS_PER_PLAYER");

		public int m_firstPendingWhisperIndex => method_2<int>("m_firstPendingWhisperIndex");

		public BnetWhisperMgr(IntPtr address, string className)
			: base(address, className)
		{
		}

		public BnetWhisperMgr(IntPtr address)
			: this(address, "BnetWhisperMgr")
		{
		}

		public static BnetWhisperMgr Get()
		{
			return MonoClass.smethod_15<BnetWhisperMgr>(TritonHs.MainAssemblyPath, "", "BnetWhisperMgr", "Get", Array.Empty<object>());
		}

		public void Initialize()
		{
			method_8("Initialize");
		}

		public void Shutdown()
		{
			method_8("Shutdown");
		}

		public bool SendWhisper(BnetPlayer player, string message)
		{
			return method_11<bool>("SendWhisper", new object[2] { player, message });
		}

		public bool HavePendingWhispers()
		{
			return method_11<bool>("HavePendingWhispers", Array.Empty<object>());
		}

		public void OnPlayersChanged(BnetPlayerChangelist changelist, object userData)
		{
			method_8("OnPlayersChanged", changelist, userData);
		}

		public bool CanProcessPendingWhispers()
		{
			return method_11<bool>("CanProcessPendingWhispers", Array.Empty<object>());
		}

		public void ProcessPendingWhispers()
		{
			method_8("ProcessPendingWhispers");
		}

		public void ProcessWhisper(int index)
		{
			method_8("ProcessWhisper", index);
		}
	}
}
